package com.boss.salary.service;

import com.boss.salary.vo.AgencyVerifyParamVo;
import com.boss.sys.ca.user.dto.UserDTO;
import com.singularsys.jep.JepException;
import org.springframework.scheduling.annotation.Async;
import org.springframework.transaction.annotation.Transactional;

import java.lang.reflect.InvocationTargetException;
import java.text.ParseException;
import java.util.List;
import java.util.Map;

public interface IAgencySalaryAsyncService {


    @Async
    void batchSubmitAsync(List<AgencyVerifyParamVo> agencyVerifyParamVo, UserDTO userDTO, String uuid,String tokenid) throws ParseException, InvocationTargetException, IllegalAccessException, NoSuchMethodException, JepException;

    @Transactional(rollbackFor = Exception.class)
    void batchSubmitAsyncs(AgencyVerifyParamVo agencyVerifyParamVo, UserDTO userDTO, String province, StringBuffer requestMessage, String text,String tokenid) throws ParseException, InvocationTargetException, IllegalAccessException, NoSuchMethodException, JepException;



    @Async
    void batchAuditAsync(List<AgencyVerifyParamVo> agencyVerifyParamVo, UserDTO userDTO, String uuid,String tokenid) throws ParseException, InvocationTargetException, IllegalAccessException, NoSuchMethodException, JepException;

    @Transactional(rollbackFor = Exception.class)
    void batchAuditAsyncs(AgencyVerifyParamVo agencyVerifyParamVo, UserDTO userDTO, String province, StringBuffer requestMessage, String text,String tokenid,boolean is_one) throws ParseException, InvocationTargetException, IllegalAccessException, NoSuchMethodException, JepException;


    @Async
    void batchAuditOneAsync(List<AgencyVerifyParamVo> agencyVerifyParamVo, UserDTO userDTO, String uuid,String tokenid) throws ParseException, InvocationTargetException, IllegalAccessException, NoSuchMethodException, JepException;


    //维护工资信息批量上报
    Map<String, String> batchSubmitUnitSalaryReport(List<AgencyVerifyParamVo> agencyVerifyParamVo, UserDTO userDTO, String tokenid) throws NoSuchMethodException, JepException, IllegalAccessException, ParseException, InvocationTargetException;

    //审核报财政批量上报
    Map<String, String> batchAuditUnitSalaryReport(List<AgencyVerifyParamVo> agencyVerifyParamVo, UserDTO userDTO, String tokenid) throws NoSuchMethodException, JepException, IllegalAccessException, ParseException, InvocationTargetException;

    //单岗批量上报
    Map<String, String> batchAuditUnitSalaryReportOne(List<AgencyVerifyParamVo> agencyVerifyParamVo, UserDTO userDTO, String tokenid) throws NoSuchMethodException, JepException, IllegalAccessException, ParseException, InvocationTargetException;
}


